<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    const arr = [
	{ id: '29', pid: '', name: '总裁办' },
	{ id: '2c', pid: '', name: '财务部' },
	{ id: '2d', pid: '2c', name: '财务核算部' },
	{ id: '2f', pid: '2c', name: '薪资管理部' },
	{ id: 'd2', pid: '', name: '技术部' },
	{ id: 'd3', pid: 'd2', name: 'Java研发部' }
]
var map = {}
var newArr = []
arr.forEach(item=>{
  item.children = []
  map[item.id] = item
})
arr.forEach(item2=>{
  var parent = map[item2.pid]
  if(parent) {
parent.children.push(item2)
  } else {
    newArr.push(item2)
  }
  return newArr
})
console.log(newArr);
  </script>
</body>
</html>